 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>对象</title>
 </head>
 <body>
     <script type="text/javascript">
    var obj={
        name:"hy",
        setName:function(){
            this.name="hy 帅"//this === obj
        }
    }
    //新增年纪
    obj.age=18;
    console.log(obj)
    obj.setName();
    console.log(obj)
    //删除年纪
    delete obj.age
    console.log(obj)

   // object.prop -----> object['prop']



    //对象创建方法
    //1.var obj = {}  plainObject  对象字面量/对象直接量
    //2.构造函数 
    //   1)系统自带的 object() Array() Number()
    var obj1 = new Object();
    obj1.name = '系统自带构造函数'
    console.log(obj1);
    //   2)自定义 和函数没区别 命名大驼峰式 TheFirst
        //原理 1.函数体最前面 var this = {}
            // 2.赋值
            // 3.return this
    function Person (color){
        // var this = {}
        this.height=170;//通过this改变属性
        this.color = color;//有参构造
        //return this //返回必须为原始值 可以自定修改 return {};
    }
    var person1 = new Person('red');
    person1.name='自定义构造函数'
    console.log(person1)

    //原始值不可能有属性 有属性会先调用包装类赋予属性
    //包装类 
    var str = "abc"
    //str.length
    //str为原始值无属性值
    //将str变成 包装类new String() 赋予属性
    //会调用new String("abc").length 此时str为对象
    //调用完就立刻删除new String("abc") 
    
     </script>
 </body>
 </html>